package org.dfyy.postgisdemo.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import net.sf.jsqlparser.expression.operators.relational.GeometryDistance;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 雷达对象表
 * @TableName tb_radar
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@TableName("tb_radar") // 指定表名 在数据库表名和实体类类名不一致时 用TableName做映射
public class Radar implements Serializable {
    /**
     * 主键
     * @TableId(value = "id",type = IdType.AUTO)  用来指定表中主键字段信息
     *      IdType: AUTO（跟随数据库自增） / INPUT（自己手动输入） / ASSIGN_ID（分配id 雪花算法）
     *
     */

    private Integer id;

    /**
     * 设备名称
     */
    private String mc;

    /**
     * 设备坐标 经纬度
     */
    private String zb;

    /**
     * @TableField()
     *       用来标记字段的 让数据库的列和实体类中的属性做映射
     *      这里的 exist = false 表示这个属性在数据库中是没有的 别让mp帮我们自动映射上去了
     *      如果列名为关键字 这里也可以使用 @TableField("`关键字`")的方式来完成处理
     *      属性名是is开头并是布尔类型的值也一定要使用这个
     */
    @TableField(exist = false)
    @JsonProperty
    private String x; // 经度

    @TableField(exist = false)
    @JsonProperty
    private String y; // 纬度

    // 线(线中的每个点位拼接后的字符串)
    @TableField(exist = false)
    @JsonProperty
    private List<List<String>> lineStrings;


    // 临时存储
    @TableField(exist = false)
    @JsonProperty
    private String temp;


    // 面(面中的每个点位拼接后的字符串)
    @TableField(exist = false)
    @JsonProperty
    private List<List<String>> polygons;


    /**
     * 设备型号
     */
    private String xh;

    /**
     * 备注
     */
    private String bz;


    private static final long serialVersionUID = 1L;


    public Radar(String mc , String x,String y){
        this.mc = mc;
        this.x = x;
        this.y = y;
    }
}